; a version of list-of-values that evaluates operands from left to right
(define (list-of-values exps env)
  (if (no-operands? exps)
      '()
      (let ((left (eval (first-operand exps) env))
	    (right (list-of-values (rest-operands exps) env)))
	(cons left right)
	)
      )
  )
(eval '(define a 3) the-global-environment)
(eval '(cons (begin (set! a (+ a 1)) a)
	     (begin (set! a (+ a 2)) a))
      the-global-environment)
;;; Evaluating in current module (guile-user)
 => (4 . 6)
; a version of list-of-values that evaluates operands from right to left
(define (list-of-values exps env)
  (if (no-operands? exps)
      '()
      (let ((right (list-of-values (rest-operands exps) env))
	    (left (eval (first-operand exps) env))
	    )
	(cons left right)
	)
      )
  )
(eval '(define a 3) the-global-environment)
(eval '(cons (begin (set! a (+ a 1)) a)
	     (begin (set! a (+ a 2)) a))
      the-global-environment)
;;; Evaluating in current module (guile-user)
 => (6 . 5)


